package cn.s1995.sloth.bizs.entity;

import java.util.List;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableLogic;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;

import cn.s1995.sloth.bizs.entity.base.BaseEntity;
import cn.s1995.sloth.common.core.convert.JoinUrlPrefixConvert;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
import lombok.experimental.Accessors;

/**
 * 产品评价
 *
 * @author sloth
 * @date 2024-01-02 15:35:58
 */
@Data
@Accessors(chain = true)
@Builder
@NoArgsConstructor
@AllArgsConstructor
@EqualsAndHashCode(callSuper = true)
@Schema(description = "产品评价")
@TableName(value = "biz_prod_evaluate", autoResultMap = true)
public class ProdEvaluate extends BaseEntity {


	/**
	* ID
	*/
    @TableId(type = IdType.ASSIGN_ID)
    @Schema(description = "ID")
    private Long id;

	/**
	* 状态：0.待审核 1.已通过 2.未通过
	*/
    @Schema(description = "状态：0.待审核 1.已通过 2.未通过")
    private Integer state;

	/**
	* 产品id
	*/
    @Schema(description = "产品id")
    private Long prodId;

	/**
	* 用户id
	*/
    @Schema(description = "用户id")
    private Long uid;

	/**
	* 用户昵称
	*/
    @Schema(description = "用户昵称")
    private String userNickname;

	/**
	* 用户头像
	*/
    @Schema(description = "用户头像")
    private String userAvatar;

	/**
	* 订单id
	*/
    @Schema(description = "订单id")
    private Long orderId;

	/**
	* 订单项id
	*/
    @Schema(description = "订单项id")
    private Long orderItemId;

	/**
	* 内容
	*/
    @Schema(description = "内容")
    private String content;

	/**
	* 图片
	*/
    @JsonSerialize(using = JoinUrlPrefixConvert.class)
	@TableField(typeHandler = com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler.class)
    @Schema(description = "图片")
    private List<String> pics;

	/**
	* 视频
	*/
    @JsonSerialize(using = JoinUrlPrefixConvert.class)
    @Schema(description = "视频")
    private String video;

	/**
	* 综合评价：0.差评 1.中评 2.好评
	*/
    @Schema(description = "综合评价：0.差评 1.中评 2.好评")
    private Integer type;

	/**
	* 综合得分：0-5分
	*/
    @Schema(description = "综合得分：0-5分")
    private Integer score;

	/**
	* 描述相符得分：0-5分
	*/
    @Schema(description = "描述相符得分：0-5分")
    private Integer scoreDesc;

	/**
	* 物流服务得分：0-5分
	*/
    @Schema(description = "物流服务得分：0-5分")
    private Integer scoreLogistics;

	/**
	* 服务态度得分：0-5分
	*/
    @Schema(description = "服务态度得分：0-5分")
    private Integer scoreService;

	/**
	* 有用数
	*/
    @Schema(description = "有用数")
    private Integer usefulCount;

	/**
	* 是否匿名
	*/
    @Schema(description = "是否匿名")
    private Boolean isAnonymous;

	/**
	* IP
	*/
    @Schema(description = "IP")
    private String ip;

	/**
	* 删除标识
	*/
	@TableLogic
	@TableField
    @Schema(description = "删除标识", hidden = true)
    private Boolean delFlag;
}
